www.gusucode.com > Matlab在化学工程中的应用 > Matlab在化学工程中的应用/实用化工计算机模拟-Matlab在化学工程中的应用/Examples/Chapter 4/DiffReact_MonolithCat.m

    function DiffReact_MonolithCat
% 多孔催化剂层中伴随有等温可逆反应的双组分气体扩散
%
%   Author: HUANG Huajiang
%   Copyright 2003 UNILAB Research Center, 
%   East China University of Science and Technology, Shanghai, PRC
%   $Revision: 1.0 $  $Date: 2003/05/15 $

clear all
clc
global k Kc L De CT CAs CBs 
k = 8e4;
Kc = 6e5;
L = 0.2;
De = 0.01;
CT = 4e-5;
CAs = 3e-5;
CBs = 1e-5;

a = 0;
b = L;

% solution is obtained using an initial guess of y1(x)=0, y2(x)=0, y3(x)=0
solinit = bvpinit(linspace(a,b,50),[0 0 0]);
sol = bvp4c(@ODEs,@BCfun,solinit);
format short e
x = [0:0.02:L];
y = deval(sol,x)
CA = y(1,:)';
NA = y(2,:)';
Eta = y(3,:)';
disp([x' CA NA Eta])

% ------------------------------------------------------------------
function dydr = ODEs(z,y)
global k Kc L De CT CAs CBs
CA = y(1);
NA = y(2);
% Eta = y(3);
CB = CT - CA;
dCAdz = (CA/CT*(NA/2)-NA)/De;
dNAdz = -k*(CA^2-(CT-CA)/Kc);
dEtadz = (CA^2-CB/Kc)/(CAs^2-CBs/Kc)/L;
dydr = [dCAdz; dNAdz; dEtadz];

% ------------------------------------------------------------------
function bc = BCfun(ya,yb)
global CAs
bc = [ya(1)-CAs; yb(2); ya(3)];